import cn.hutool.core.collection.BoundedPriorityQueue;

import java.util.Arrays;
import java.util.List;

/**
 * @author : dormi330
 * @since : 22/02/05
 */
public class BoundedPriorityQueueTest {
    public static void main(String[] args) {
        // 有界优先队列, 大小为3, 默认小值优先
        BoundedPriorityQueue<Integer> queue = new BoundedPriorityQueue<>(3, (o1, o2) -> {
            if (o1 > o2) {
                return -1;
            } else if (o1.equals(o2)) {
                return 0;
            } else {
                return 1;
            }
        });

        // 这里 9是重复的
        List<Integer> input = Arrays.asList(1, 8, 9, 5, 9, 6, 2, 7, 3, 4, 10);

        // input.forEach(x -> queue.add(x));
        for (Integer e : input) {
            System.out.print("put " + e + ": ");
            queue.add(e);
            // 打印 queue
            System.out.print("queue = ");
            for (Integer x : queue) {
                System.out.print(x + " ");
            }
            System.out.println("");
        }
    }
}
